package view;

import model.Usuario;

import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

import controller.LoginManager;

public class LoginAction extends ActionSupport {
/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String userName;
	private String password;
	private LoginManager loginManager;
	private Usuario usuario = new Usuario();
	
	public LoginAction() {
        loginManager = new LoginManager();
    }
		
	
	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	// all struts logic here
	public String execute() {
		
		usuario = loginManager.load(getUserName());
				
		if ( usuario != null ) {
				
			if ( usuario.getNombreUsuario().equals(getUserName()) && usuario.getClave().equals(getPassword())) {
							
					ServletActionContext.getRequest().getSession().setAttribute("loggedInUser", usuario.getNombreUsuario());
					addActionMessage("You are valid user!");
					return "login-success";	
				
				} else {
					addActionError("Calve Incorrecta");
					return "login-error";
				}
		}	
		addActionError("Usuario No encontrado");
		return "login-error";
	}

	// simple validation
	public void validate() {
		if(userName.trim().equalsIgnoreCase("") || password.trim().equalsIgnoreCase(""))
		{
			addActionError("Usuario y Clave son Requeridos");
		}
		
	}
	
	public LoginManager getLoginManager() {
		return loginManager;
	}


	public Usuario getUsuario() {
		return usuario;
	}
}